//
//  CYMacro.h
//  ToyotaUccn
//
//  Created by 车音 on 2019/6/25.
//  Copyright © 2019 CheYin. All rights reserved.
//

#ifndef CYMacro_h
#define CYMacro_h


/************************************ 颜色相关 **************************************/
#define CYRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

#define kColorWithRGB(rgbValue) \
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \
green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \
blue:((float)(rgbValue & 0xFF)) / 255.0 alpha:1.0]

#define kColorWithRGBAndAlp(rgbValue,alp) \
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \
green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \
blue:((float)(rgbValue & 0xFF)) / 255.0 alpha:alp]


/************************************** 打印 ***************************************/
#if DEBUG
#define CYLog( s, ... ) [CYUtils log:@"[%@:%d] %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] ]
#else
#define CYLog(... )
#endif

/************************************** 屏幕尺寸 ***************************************/
#define ScreenWidth                 [UIScreen mainScreen].bounds.size.width
#define ScreenHeight                [UIScreen mainScreen].bounds.size.height
#define FULL_SCREEN                 CGRectMake(0, 0, ScreenWidth, ScreenHeight)

/************************************** 手机相关 ***************************************/
#define iPhone4                     ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone5                     ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
#define LessiPhone5                 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define isPlus                     ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone6Pluse                ([[UIScreen mainScreen] bounds].size.height > 667 ? YES : NO)
#define iPhoneX                     ([[UIScreen mainScreen] bounds].size.width == 375.f && [[UIScreen mainScreen] bounds].size.height == 812.f ? YES : NO)
#define CurrentSystemVersionFloat   [[[UIDevice currentDevice] systemVersion] floatValue]
#define IsiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
#define KDDNavBarH [(AppDelegate *)[UIApplication sharedApplication].delegate navbarH]

//判断是否是ipad
#define isiPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判断iPhone4系列
#define kiPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iPhone5系列
#define kiPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iPhone6系列
#define kiPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iphone6+系列
#define kiPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iPhoneX
#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO)
//判断iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)
//判断iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isiPad : NO)



///< 状态栏、导航栏及tabbar 判断
//#define Height_StatusBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 44.0 : 20.0)
#define Height_StatusBar [[UIApplication sharedApplication] statusBarFrame].size.height
//#define Height_NavBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 88.0 : 64.0)
#define Height_NavBar (Height_StatusBar > 20 ? 88.0 : 64.0)
#define Height_TabBar (Height_StatusBar > 20 ? 83.0 : 49.0)

#define CYSafeAreaBottom  (Height_NavBar == 88.0 ? 34.0 : 0.0)


/************************************** 常用判断 ***************************************/
#define isNilNull(obj)              (!obj || [obj isEqual:[NSNull null]])
#define isNotNull(obj)              (![obj isEqual:[NSNull null]])
#define isStringWithNotNull(obj)    (![obj isEqual:[NSNull null]] && [obj isKindOfClass:[NSString class]])
#define isEmptyString(obj)          (obj==nil || [obj isEqual:[NSNull null]] || [[obj stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet] length]==0)
#define StrSafe(str)                (isEmptyString(str) ? @"" : (str))

#define autoScaleW(width) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleW:width]
#define autoScaleH(height) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleH:height]

/************************************** 弱引用宏 ***************************************/
#define WS(weakSelf)  __weak __typeof(&*self)weakSelf = self;
#define SS(strongSelf) __strong __typeof(&*weakSelf)strongSelf = weakSelf;


/*************************************屏幕比例宽高****************************************/
#define CYScalW(W)  (ScreenWidth * W/375)
#define CYScalH(H)  ScreenHeight * H/667
#define CYScalXH(H)  ScreenHeight * H/812
#define width375(W)  CYScalW(W)
/*************************************加载图片****************************************/
#define IMAGE(name) [UIImage imageNamed:name]
#define Itunes @"https://itunes.apple.com/cn/app/id687516806?l=zh&amp;ls=1&amp;mt=8"
//字体
#define fontSize(fontSzie) [UIFont systemFontOfSize: (fontSzie)]
#define fontBold(fontSize) [UIFont fontWithName:@"Helvetica-Bold" size:(fontSize)]

#define kRegularFont(fontSize) [UIFont fontWithName:@"PingFangSC-Regular" size: fontSize] ///< 苹方常规

#define kMediumFont(fontSize) [UIFont fontWithName:@"PingFangSC-Medium" size: fontSize] ///< 苹方中黑
///<
#define kBoldFont(fontSize) [UIFont fontWithName:@"PingFangSC-Bold" size: fontSize]///<  苹方粗体

#define kSemiboldFont(fontSize) [UIFont fontWithName:@"PingFangSC-Semibold" size: fontSize]///<  苹方中粗

#define kLightFont(fontSize) [UIFont fontWithName:@"PingFangSC-Light" size: fontSize] ///< 苹方细体
/*************************************常用字体颜色****************************************/
#define kColor999999 [UIColor colorWithHex:0x999999]
#define kColor666666 [UIColor colorWithHex:0x666666]
#define kColor333333 [UIColor colorWithHex:0x333333]
#define kColor555555 [UIColor colorWithHex:0x555555]
#define kColorMainBg [UIColor colorWithHex:0x0DA8E2]

/*************************************常用字体名称和字号****************************************/
//#define DINCond_Bold(fontSize) [UIFont fontWithName:@"DINCond-Bold" size:fontSize]
//#define MicrosoftYaHei_Bold(fontSize) [UIFont fontWithName:@"MicrosoftYaHei-Bold" size:fontSize]


#define NIBrotherCYBM        @"NIBrotherCYBM"
/************************************** Host ***************************************/
#define APP_DEBUG 1 //切换正式/测试  0正式 1测试

#define DEBUG_FLAG 0 // 后台返回假数据标记 0 真实数据 1 假数据

#define APP_CONTAINS_COMMUNITY 1 // 社区功能是否可用 0 可用 1 不可用

//sfx配置信息表 0正式 1测试
#define SFXConfig 0 ? @"sfxConfigDev" : @"sfxConfigPrd" // 配置文件名  生产: sfxConfigPrd    测试: sfxConfigDev

//功能配置接口 0正式 1测试
#define FunctionConfig 0

//是否含有OTA升级 1 有 0 没有
#define Have_OTA 1
#define Name_OTA @"OTA升级"

//请求失败文言
#define Request_Fail @"请求失败，请稍后重试"


#if APP_DEBUG

//#define CYHost @"http://website.ftms.devbmsoft.cn" //测试环境

#define CYHost @"https://appsite.ftms.devwox.cn" //测试环境 新
//#define CYUccnHost @"https://wapsite.ftms.com.cn" //官网测试环境
#define CYUccnHost @"https://ftms-website-wap-uat.ftms.com.cn" //官网测试环境
#define CYHost_HomeWeb @"https://ftms-union-uat.ftms.com.cn" //PHP接口测试环境
#define CYHost_HomeWebNew @"https://ftms-union-uat.ftms.com.cn" //汪氏部分接口修改但是测试环境保持不变1
#define CYHost_Appointment @"https://official-platform-uat.ftms.com.cn"//预约试驾预约咨询测试环境

#define CYHost_H5 @"https://app.ftms.com.cn/" // 加载H5页面host 测试环境

#define CYHost_HomeWeb_Next      @"https://api.ftms.com.cn" //保养到期查询测试路径   /Openapi/VhcInfo/NextInsInfo

#define CYHost_H5_Protocol @"https://superapptest.ftms.com.cn/webapp/#/PrivacyPolicy" // 隐私政策路径
// 三方个人信息共享清单测试环境
#define THIRD_URL @"https://superapptest.ftms.com.cn/webapp/#/thirdPartyPersonalInformation"
// 个人信息收集清单测试环境
#define PERSONAL_URL @"https://superapptest.ftms.com.cn/webapp/#/personalInformation"

#define CYHost_restrictions @"http://bss.vcyber.com"

//经销商测试环境
#define CYAgencyHost @"http://appsite.ftms.devwox.cn/ftmsiovH5/ftmsIovAppV2/#/login?userType=1&from=1"

#define CYHost_PayWeb @"https://pre.evzhuangjia.com/toyota/ftms/spa/pay?projectType=ftms"// 测试四维支付链接
//#define CYHost_CarLightH5 @"https://wxsite.ftms.com.cn" //加载车型亮点H5页面 测试环境
#define CYHost_CarLightH5 @"https://wx-m.ftms.com.cn" //加载车型亮点H5页面 正式环境

#define NITWUserCenter   @"http://superappuat.ftms.com.cn/superapp/" // 四维测试UAT联调
#define NIHeaderHost_H5     @"https://superappuat.ftms.com.cn/ftms-superapp-web/" // 四维h5头

#define NIMailCarHeader_H5     @"https://ftms-website-wap-uat.ftms.com.cn" // 二手车h5头

#define appkey @"78534769-8914-4b37-8867-e4fba180b631"
#define clientsecret @"3b41d36e2e4c46b99afe7d43dff0d321"
#define client_id @"2d78990a2d20414686aca44ae8a2b094"

#define Room_3d_url @"https://wapsite.ftms.com.cn/3d/group/room/#/?from=App" //测试环境数字展厅url


#define ChargingCardUrl @"http://appsite.ftms.devwox.cn/ftmsAppH5/iovStaticV2/#/InstructionPageOne/"    //充电卡使用说明测试

#define OTANewUpdateUrl @"https://appsite.ftms.devwox.cn/ftmsAppH5/app_ota/#/"             //OTA升级链接-测试

//实名认证-测试
#define RealNameAuthentication @"https://realname-dev.gbookchina.com/realname/index?"

//批量认证及个人-测试
#define BatchRealNameAuthentication @"https://realname-dev.gbookchina.com/realname/index"
//在线客服
#define CustomerServiceUrl @"https://chat.hongdahy.com/test/client_app?"

#define CYHOST_ALLCAR_CONFIG @"https://superapptest.ftms.com.cn"
// 个性化配置以及会员等级以及协议详情页h5URL
#define CYHOST_Level_H5_URL @"https://cdn.img-yqft.hi-cloud.net/0000-dir/h5/ftms-h5.test/index.html#/"
#else

//#define CYHost [[NIUserProfile getValueForKey:NIBrotherCYBM defaultValue:@"0"] isEqualToString:@"1"] ? @"http://appsite.ftms.com.cn" : @"https://appiov.ftms.com.cn" //正式环境
//#define CYUccnHost [[NIUserProfile getValueForKey:NIBrotherCYBM defaultValue:@"0"] isEqualToString:@"1"] ? @"https://wapsite.ftms.com.cn" : @"https://m.ftms.com.cn" //官网正式环境
//#define CYHost_HomeWeb [[NIUserProfile getValueForKey:NIBrotherCYBM defaultValue:@"0"] isEqualToString:@"1"] ? @"http://homesite.ftms.devbmsoft.cn" : @"https://app.ftms.com.cn" //PHP接口正式环境
//#define CYHost_H5 [[NIUserProfile getValueForKey:NIBrotherCYBM defaultValue:@"0"] isEqualToString:@"1"] ? @"https://app.ftms.com.cn/" : @"https://appiov.ftms.com.cn/" // 加载H5页面host 正式环境
//#define NIMailCarHeader_H5 [[NIUserProfile getValueForKey:NIBrotherCYBM defaultValue:@"0"] isEqualToString:@"1"] ? @"http://ershouche.ftms.com.cn" : @"https://mall.ftms.com.cn" // 二手车h5头

#define CYHost              @"https://appiov.ftms.com.cn" //正式环境
#define CYUccnHost          @"https://m.ftms.com.cn" //官网正式环境
#define CYHost_HomeWeb      @"https://app.ftms.com.cn" //PHP接口正式环境

#define CYHost_HomeWeb_Next      @"https://api.ftms.com.cn" //保养到期查询路径   /Openapi/VhcInfo/NextInsInfo
#define CYHost_HomeWebNew   @"https://api.ftms.com.cn" //汪氏部分接口修改11
#define CYHost_Appointment @"https://www.ftms.com.cn"//预约试驾预约咨询正式环境
#define CYHost_H5           @"https://appiov.ftms.com.cn/" // 加载H5页面host 正式环境

#define CYHost_H5_Protocol @"https://appiov.ftms.com.cn/ftmsAppH5/appStatic/#/PrivacyPolicy" // 隐私政策路径 正式环境
// 三方个人信息共享清单正式环境
#define THIRD_URL @"https://appiov.ftms.com.cn/ftmsAppH5/appStatic/#/thirdPartyPersonalInformation"
// 个人信息收集清单正式环境
#define PERSONAL_URL @"https://appiov.ftms.com.cn/ftmsAppH5/appStatic/#/personalInformation"

#define NIMailCarHeader_H5  @"https://m.ftms.com.cn" // 二手车h5头

#define CYHost_restrictions @"http://bss.vcyber.com"
// 0317pv1w30AefW2lZD1w34mhgk27pv1k 071WsM1w3bwXeW2zv74w3hzZSi4WsM1e 0513ui100sncAL1uyQ100q29LD03ui1B
#define CYAgencyHost @"https://appiov.ftms.com.cn/ftmsAppH5/iovDealerH5/#/login?userType=1&from=1" //经销商正式环境
//#define CYAgencyHost @"https://appiov.ftms.com.cn/ftmsAppH5/ftmsIovAppV2/#/login?userType=1&from=1" //经销商预发环境


#define CYHost_PayWeb @"https://ftms.evzhuangjia.com/toyota/spa/pay?projectType=ftms"// 正式四维支付链接H5支付链接
#define CYHost_CarLightH5 @"https://wx-m.ftms.com.cn" //加载车型亮点H5页面 正式环境

#define NITWUserCenter   @"https://superapp.ftms.com.cn/superapp/" // 四维正式地址
#define NIHeaderHost_H5     @"https://superapp.ftms.com.cn/ftms-superapp-web/" // 四维正式地址h5头

#define appkey @"a0e433a0-a632-4fd4-bbf7-4c72a9de4b20"
#define clientsecret @"3b41d36e2e4c46b99afe7d43dff0d321"
#define client_id @"2d78990a2d20414686aca44ae8a2b094"


#define Room_3d_url @"https://3droom.ftms.com.cn/3d/group/room/#/?from=App" //生产环境数字展厅url

#define ChargingCardUrl @"http://appiov.ftms.com.cn/ftmsAppH5/iovStaticV2/#/InstructionPageOne/"    //充电卡使用说明

#define OTANewUpdateUrl @"https://appiov.ftms.com.cn/ftmsAppH5/app_ota/#/"             //OTA升级链接

//实名认证-生产
#define RealNameAuthentication @"https://realname.gbookchina.com/realname/index?"

//批量认证-生产
#define BatchRealNameAuthentication @"https://realname.gbookchina.com/realname/index"
//在线客服-生产
#define CustomerServiceUrl @"https://voc.ftms.com.cn/client_app?"

#define CYHOST_ALLCAR_CONFIG @"https://superapp.ftms.com.cn"
// 个性化配置以及会员等级以及协议详情页h5URL
#define CYHOST_Level_H5_URL @"https://cdn.img-yqft.hi-cloud.net/0000-dir/h5/ftms-h5.pro/index.html#/"
#endif


/************************************Third Key*************************************/

// 微信appid
#define WeChat_APPID             @"wxa37d16033af8957b"
// 微信appscret
#define WeChat_APPSCRET             @"6a5b92328d29b3b71e3c9969ff1445a9"
// 微信Universal Links
#define WeChat_UniversalLinks    @"https://www.ftms.com.cn/"
//#define WeChat_UniversalLinks    @"https://www.ftms.com.cn/apple-app-site-association/"

//微信企业id
#define WeChat_Enterprise_APPID             @"wwdd8cb46d5af9ac9d"
//微信企业id
#define WeChat_Service_URL             @"https://work.weixin.qq.com/kfid/kfc538bc1a114366827"

//一丰微信企业id
#define WeChat_Enterprise_YF_APPID             @"wwdd8cb46d5af9ac9d"
//一丰微信企业URL
#define WeChat_Service_YF_URL             @"https://work.weixin.qq.com/kfid/kfc8d81c70e32d5ab82"

// 新浪appKey
#define SinaWeibo_APPKEY                @"1328157020"
// 新浪appSecret
#define SinaWeibo_APPSCRET              @"47c84250e5b5bbb359f39ee4d9ab1fda"

//极光推送相关配置
#define JPush_APPKey @"eefa6d17a88afb629e0c7647"
// pgyer 蒲公英    AppStore 线上环境
#define JPush_channel @"AppStore"
//百度地图key
#define BAIDUMAP_KEY      @"MFCgqhKtHEHCZCIscT4nl5qtgGSDELeT" //com.frontnetwork.FTMS

#define BaiDu_Mob @"252cafb4b0"

#define UM_APPKEY   @"5e807fde0cafb24a4c000020"

//代客服务存储--冷启动用-存手机号
#define ValetServiceKeyPhone @"ValetServiceKeyPhone"
#define accountPhoneKey  @"accountPhoneKey"
#if APP_DEBUG
#define BeaconStatistics_KEY @"KUMJK9C037I45UIS"
#else
#define BeaconStatistics_KEY @"KVKWC7OM3X4H4E6V"
#endif




#endif /* CYHeader_h */

